
//#include "sm2.c"
#include <openssl/evp.h>
#include <openssl/ec.h>

#include <openssl/err.h>
#include <openssl/bio.h>
#include <openssl/pem.h>

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
typedef unsigned char u8;

#undef LOG_TAG
#define LOG_TAG "sm2"

int get_pub_key_from_priv(u8 *priv_key, size_t priv_key_len, u8 **pub_key, size_t *pub_key_len);
void test_get_pub_key_from_priv();
int generate_shared_key(unsigned char *shared_key, size_t shared_key_len,
                        const EC_GROUP *group, const EC_POINT *pub_key, const BIGNUM *priv_key);
int test_generate_shared_key();
int test_ex_sm2();
